#ifndef SQ_STACK_  						//这句是用于防止多次引用头文件导致问题
#define SQ_STACK_  						//这句是用于防止多次引用头文件导致问题
#include <stdio.h>
#include <stdbool.h>

#define MAXSIZE 20
typedef char SQElemType;
typedef struct 
{
	SQElemType data[MAXSIZE];
	int top;							//用于栈顶指针
} SqStack;


void InitStack(SqStack *S);				//初始化操作，建立一个空栈S
void DestroyStack(SqStack *S);			//若栈存在，则销毁它  
void ClearStack(SqStack *S);			//将栈清空
bool StackEmpty(SqStack S);				//若栈为空，返回true，否则返回false
void GetTop(SqStack *S,SQElemType *e);	//若栈存在且非空，用e返回S的栈顶元素
void Push(SqStack *S,SQElemType *e);	//若栈S存在，插入新元素e到栈S中并称为栈顶元素  
void Pop(SqStack *S,SQElemType *e);		//删除栈S中栈顶元素，并用e返回其值  
int StackLength(SqStack S);				//返回栈S的元素个数
void ReleaseMemory(SqStack *L);			//释放内存

#endif
